package com.zlkj.ssm.shop.web.controller.manage;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.zlkj.ssm.shop.core.cache.FrontCache;
import com.zlkj.ssm.shop.core.cache.ManageCache;

/**
 * 缓存管理
 */
@Controller
@RequestMapping("/manage/cache")
public class AdminCacheController {
	@Autowired
	private FrontCache frontCache;
	@Autowired
	private ManageCache manageCache;

	/**
	 * 跳转cache_.ftl
	 */
	@RequestMapping("/cache")
	public String getCache() {
		return "/manage/cache/cache_";
	}

	/**
	 * 加载后台缓存
	 */
	@RequestMapping("/cacheImpl")
	public String getAdminCache(Model model) {
		try {
			manageCache.loadAllCache();
			model.addAttribute("resultManageCache", "加载后台缓存 加载数据成功！");
		} catch (Exception e) {
			e.printStackTrace();// TODO: handle exception
		}
		return "/manage/cache/cacheImpl_";
	}

	/**
	 * 加载前台缓存
	 */
	@RequestMapping("/frontCacheImpl")
	public String getFrontCache(Model model, @RequestParam("method") String method) {
		try {
			if (StringUtils.isEmpty(method))
				return null;
			if ("frontAll".equals(method)) {
				frontCache.loadAllCache();
				model.addAttribute("resultFrontCache", "加载前台缓存 加载数据成功！");
			} else if ("activity".equals(method)) {
				// 加载活动+活动商品列表
				frontCache.loadActivityMap();
				frontCache.loadActivityProductList();
				frontCache.loadActivityScoreProductList();
				frontCache.loadActivityTuanProductList();
				model.addAttribute("resultFrontCache", "加载活动+活动商品列表 加载数据成功！");
			} else if ("loadIndexImgs".equals(method)) {
				// 门户滚动图片
				frontCache.loadIndexImgs();
				model.addAttribute("resultFrontCache", "门户滚动图片 加载数据成功！");
			} else if ("loadAdvertList".equals(method)) {
				// 广告列表
				frontCache.loadAdvertList();
				model.addAttribute("resultFrontCache", "广告列表 加载数据成功！");
			} else if ("loadNotifyTemplate".equals(method)) {
				// 加载邮件模板列表
				frontCache.loadNotifyTemplate();
				model.addAttribute("resultFrontCache", "加载邮件模板列表 加载数据成功！");
			} else if ("loadProductStock".equals(method)) {
				// 加载商品内存库存
				frontCache.loadProductStock();
				model.addAttribute("resultFrontCache", "加载商品内存库存 加载数据成功！");
			} else if ("hotquery".equals(method)) {
				// 热门查询关键字
				frontCache.loadHotquery();
				model.addAttribute("resultFrontCache", "热门查询关键字 加载数据成功！");
			}
		} catch (Exception e) {
			e.printStackTrace();// TODO: handle exception
		}
		return "/manage/cache/cacheImpl_";
	}

}
